Congestion avoidance techniques are essential to the operation of networks and network devices. One such technique known in the art as “Random Early Discard” or “RED” is described in a publication by S. Floyd and V. Jacobson entitled “Random Early Detection Gateways for Congestion Avoidance, ” (Transactions on Networking, August 1993), which is hereby incorporated by reference for all purposes.
The basic principle behind RED is to control the average length of a network device's (e.g., a router's) output queue in order to avoid long-term congestion. To achieve this goal, RED must work tightly coupled with transport protocols, such as TCP, which are equipped with their own congestion avoidance mechanisms and are thus capable to react to congestion indications generated by RED routers.
FIG. 1A includes graph 100 that illustrates how RED works. For each incoming packet, the average queue length is calculated. (Please note that the terms “packet” and “frame” may be used interchangeably herein.) If the average queue length is below a predefined minimum threshold 102, the packet is accepted and stored in the output queue for transmission. If the average queue size is above the minimum threshold 102 but below a predefined maximum threshold 104, a packet marking probability is computed and the packet gets marked according to this probability. The marking probability is proportional to the average queue size. Therefore, when the queue is larger, there is a higher probability for an incoming packet to be marked. Finally, if the average queue size is above the maximum threshold 104, all incoming packets are marked until the average queue size falls again below the maximum threshold 104.
It is responsibility of the transport protocol to take the appropriate countermeasures when it detects packets marked by RED. One explicit method of marking packets in this context is described in RFC 3168, “The Addition of Explicit Congestion Notification (ECN) to IP” (K. Ramakrishnan et al., September 2001), which is hereby incorporated by reference. When TCP is being used in the absence of an explicit method of marking packets, packets can only be “marked” by discarding them, with TCP interpreting the loss of packets as a congestion indication. When packet drops are detected, TCP sources immediately reduce their transmission rate, causing a reduction of the traffic volume at the congested router(s). Discarding packets is also a useful means to control average queue size when non-reactive transport protocols such as UDP are exploited.
As noted in the Background section of the AQM Application, the RED algorithm presents scalability issues and other challenges. Moreover, as the speed of network traffic increases, controlling network congestion in an acceptable manner becomes increasingly challenging. This is true in part because it is not economically feasible to increase buffer sizes in proportion to the higher network speeds. High speed, coupled with proportionally smaller buffer sizes and low latency, causes buffers to fill up very quickly when congestion arises.
Some exemplary high-speed, low latency networks having relatively small buffers, which will be referred to herein as Data Center Ethernet (“DCE”) or the like, are described in U.S. patent application Ser. No 11/084,587, entitled “Ethernet Extension for the Data Center” and filed on Mar. 18, 2005, to U.S. patent application Ser. No 11/078,992, entitled “Fibre Channel Over Ethernet” and filed on Mar. 10, 2005 and to U.S. patent application Ser. No 11/094,877, entitled “Network Device Architecture for Consolidating Input/Output and Reducing Latency” and filed on Mar. 30, 2005, (the “DCE Applications”), all of which are incorporated by reference for all purposes.
DCE networks are a challenging environment for congestion management because of their high speed (minimum 10 Gbps) and low latency (few microseconds of round trip). Also, in certain cases, such networks make use of 802.3X link-level flow control to guarantee zero packet loss to applications. If link-level flow-control is being used, congestion spreads almost instantly.
Prior art congestion control techniques such as RED and ECN have been shown to work poorly with small buffers because of the extremely compressed dynamics exhibited by such buffers. In fact, under congestion conditions a buffer in a DCE network fills up instantly when such techniques are employed, causing RED or ECN to work in the region of maximum drop/mark probability. This, in turn, causes the traffic flows to slow down more than necessary, which causes a loss of throughput.
More advanced congestion control mechanisms tailored for networks characterized by operational parameters similar to DCE have been considered. One such mechanism is Fibre Channel Congestion Control (“FCC”), a congestion management mechanism for Fibre Channel networks that is described in co-pending U.S. patent application Ser. No 10/777,886, entitled “End-to-End Congestion Control in a Fibre Channel Network” and filed on Feb. 11, 2004, which is a continuation-in-part of co-pending U.S. patent application Ser. No. 10/026,583, entitled “Methods and Apparatus for Network Congestion Control” and filed on Dec. 18, 2001, both of which are incorporated herein by reference for all purposes.
While quite effective at controlling congestion when it arises, FCC uses a conservative, time-driven rate recovery process to accelerate traffic flows when congestion is improving. Therefore, FCC may take a longer-than-optimal time to recover the original rate of traffic flows in congested high-speed, low-latency networks such as DCE networks.
Many of the congestion management challenges of DCE networks are shared by other networks, including but not limited to Fibre Channel networks and high-speed Ethernet. It would be very desirable to implement methods and devices that address at least some of the shortcomings of the prior art.